#pragma once

#include <string>

namespace header
{
namespace ini
{

using line_t = unsigned long long;
using col_t  = unsigned int;

class IniError
{
public:
    IniError(line_t line, col_t col, const std::string& msg)
        :_line{ line }, _col{ col }, _msg{ msg }
    { }
    ~IniError() { }

public:
    line_t line() const { return _line; }
    col_t col() const { return _col; }
    std::string what() const { return _msg; }
    std::string str() const 
    {
        return std::to_string(_line) + ":" + std::to_string(_col) + ": " + _msg;
    }

private:
    line_t      _line;
    col_t       _col;
    std::string _msg;
};

}   // namespace ini
}   // namespace header
